package com.ydcycloud.admin.service;

import java.util.List;

import com.smart.mvc.model.Pagination;
import com.smart.mvc.model.Result;
import com.smart.sso.rpc.Permission;
import com.smart.sso.rpc.Role;
import com.smart.sso.rpc.RolePermission;
import com.smart.sso.rpc.UserRole;
import com.ydcycloud.admin.dao.ManagerDao;
import com.ydcycloud.admin.model.Manager;
import com.ydcycloud.sys.service.BaseService;

public interface ManagerService extends BaseService<ManagerDao, Manager, Integer> {

	/**
	 * Description:更新密码
	 * @author 唐海洋
	 * @Version 1.0 2016-9-8下午10:21:09 
	 * @param id 管理员id
	 * @param newPwd 新密码
	 */
	void updatePwd(Integer id, String newPwd);

	/**
	 * 加载应用角色列表
	 * @Description: TODO
	 * @param sessionAdminId
	 * @return   
	 * Result  
	 * @throws
	 * @author hdt
	 * @date 下午12:07:26
	 */
	Result listRole(Integer pageNo,Integer pageSize,String name,Integer sessionAdminId);

	/**
	 * 启用，禁用角色
	 * @Description: TODO
	 * @param isEnable
	 * @param ajaxIds   
	 * void  
	 * @throws
	 * @author hdt
	 * @date 下午4:03:09
	 */
	void enable(Boolean isEnable, List<Integer> ajaxIds);

	/**
	 * 获取角色
	 * @Description: TODO
	 * @param id
	 * @return   
	 * Role  
	 * @throws
	 * @author hdt
	 * @date 上午8:59:38
	 */
	Role getRole(Integer id);

	/**
	 * 保存角色
	 * @Description: TODO
	 * @param role   
	 * void  
	 * @throws
	 * @author hdt
	 * @date 上午9:03:35
	 */
	void saveOrUpdateRole(Role role);

	/**
	 * 列出所有的权限
	 * @Description: TODO
	 * @return   
	 * List<Permission>  
	 * @throws
	 * @author hdt
	 * @date 上午9:43:09
	 */
	List<Permission> listPermission();

	List<RolePermission> findByRoleId(Integer roleId);

	Integer allocate(Integer roleId, List<RolePermission> list);

	Pagination<com.smart.sso.rpc.Manager> findPaginationByAccount(String account,Integer pageNo,Integer pageSize);

	com.smart.sso.rpc.Manager getManager(Integer id);

	/**
	 * 
	 * @Description: TODO
	 * @param manager   
	 * void  
	 * @throws
	 * @author hdt
	 * @date 下午2:39:12
	 */
	void saveOrUpdateManager(com.smart.sso.rpc.Manager manager);

	void enableManager(Boolean isEnable, List<Integer> ids);

	Integer deleteManagerById(List<Integer> ids);

	void resetManagerPassword(String encrypt, List<Integer> ids);

	List<Role> getRoleList(Integer sessionAdminId);

	int allocateUserRole(Integer userId, List<UserRole> list);


}